The traffic over the world-wide-web (WWW) using the Internet is growing rapidly, as well as the complexity and size of the information moved from sources of information to users of such information. Bottlenecks in the movement of data from the content suppliers to the users delay the passing of information and decrease the quality of the user's experience. Traffic is expected to increase faster than the ability to resolve data transfers over the Internet.
Video streaming is a particularly large movement of data. In a traditional model, when viewing videos around the web, video content is typically streamed from a content delivery network (CDN) to a user. When streaming video on the web, two key indicators are utilized to measure the performance: video start playing time and streaming without interruption (which is impacted by the download speed of the user and upload speed of the CDN). The start playing time is the time video after the video player gets the signal to begin playing).
Current solutions attempt to accelerate webpage content delivery from a supplier of the content to the users. For example, to improve performance of video start playing time, it is possible to preload the video content. However, there are two disadvantages with preloading the content: the video must be present on the webpage to be preloaded. Simply preloading the video to a user device may be an optimal approach, as the user may not view the preloaded video at all.
Transferring data is also susceptible to malicious activity. For example, in a peer-to-peer CDN, a malicious peer can potentially transmit fake content by means of overriding the URL (for example, by changing the OS host's file). This may lead to an incorrect or malicious content with a supposedly correct URL. This can lead to the spread of malicious content between peers.
To tamper with the resource, a malicious node could override the content item behind the URL of the resource being shared from the malicious node. For example, if a browser operated by the client node may browse to website (to www.website1.com) that uses a peer-to-peer Web Real-Time Communication (WebRTC) CDN with a drop-in script. One of the website's component may include an image at www.site1.com/images/logo.png. This allows the attacker to edit the OS host's file to set 127.0.0.1 (or any other IP) as the IP for the DNS www.site1.com, which will lead to the client (the browser in this case) trying to get the resource from an incorrect address. As a result, the peer-to-peer WebRTC CDN would share the incorrect resource with other nodes. This will lead to distribution of malicious content in the network 120.
Another way of abusing the peer-to-peer WebRTC CDN to distribute incorrect content between nodes is by changing the data on the client, regardless of the URL. For example, node A can get data for a content item from node B, and malicious node B might change this data. Then, node B sends out incorrect data for the same content item to other nodes upon request to get data for this content item. For example, if the content item data is a DataURI representation of an image, node B might change that image by manipulating the DataURI, and sometime after that, when node C requests that image data and node B is chosen to provide the image data, the bad data will be distributed from node B to node C, and so on.
It would therefore be advantageous to overcome these limitations of delivering multimedia content over the web.